Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.10.2017, 12:35
Новичок на форуме
Отправить личное сообщение для kvadim80 Посмотреть профиль Найти все сообщения от kvadim80
 
Регистрация: 20.10.2017
Сообщений: 2

Не правильно передаются данные взятые из input:radio
Здравствуйте, уважаемые форумчане, подскажите пожалуйста, как c помощью ajax получить значения из тега
<input type='radio' name='id_zakaz_edit' value=''>
, когда в атрибут value= поступают данные из БД. Если делаю так,

function call_edit() {
    		var msg = $("#edit_form1").serialize();
                /*var msg = $('input[name=id_zakaz_edit]:checked').serialize();
    		$.ajax({
    			type: 'POST',
    			url: 'lib/edit.php',
    			data: msg,
    			success: function(data) {
    				$("span").html(data);
    			},
    			error: function(xhr, str) {
    				alert('Возникла ошибка: ' + xhr.responseCode);
    			}
    		});
}


и если указываю так
var msg = $("#edit_form1").serialize();
то в переменной $_POST поступает только единица, если
var msg = $('input[name=id_zakaz_edit]:checked').serialize();
, то в переменной $_POST отображают значения от 1 до 3, почему до от 1 до 3, потому что пока всего три записи в БД, но при этом значения id которые берутся из БД у всех значений разный. И как раз эти id которые должны поступать в value= почему-то jQuery их не видит и не передает.

Последний раз редактировалось kvadim80, 20.10.2017 в 12:39.
Ответить с цитированием
  #2 (permalink)  
Старый 20.10.2017, 13:26
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

kvadim80,
покажите всю форму с данными, и чего происходит на странице.
Ответить с цитированием
  #3 (permalink)  
Старый 20.10.2017, 13:37
Новичок на форуме
Отправить личное сообщение для kvadim80 Посмотреть профиль Найти все сообщения от kvadim80
 
Регистрация: 20.10.2017
Сообщений: 2

Хорошо, вот.
include 'config.php';

$edit_sql = "SELECT * FROM zakaz_new, users WHERE users.id='$id_user' AND zakaz_new.ust='1'";

//echo $edit_sql.'<br>';

$query = mysqli_query($link, $edit_sql);
?>
<form method="POST" id="edit_form1" action="javascript:void(null);" onsubmit="call_edit()">
    <table class="div_form_edit">
        <tr>
            <th></th>
            <th>Дата</th>
            <th>Время</th>
            <th>Кабинет</th>
            <th>Оборудование</th>
            <th>ФИО</th>
            <th>Примечание</th>
        </tr>
<?php
while ($row = mysqli_fetch_assoc($query)) {
    echo "<tr><td><input type='radio' name='id_zakaz_edit' value='".$row['id_zakaz']."' ></td><td>" . $row['data'] . "</td><td>" . $row['time_start'] . " - " . $row['time_end'] . "</td><td>" . $row['room'] . "</td><td>" . $row['oborudovanie'] . "</td><td>" . $row['F_name'] . " " . $row['L_name'] . "</td><td>" . $row['prim'] . " id: ".$row['id_zakaz']."</td></tr>";
}
?>
    </table>
    <br>
    <input type="button" name="edit_form" value="Изменить" id="btn_edit_form">
</form>

<script>
    $(document).ready(function() {
        $('#btn_edit_form').click(function(){
            $('.SmallWindow').show(function(){
                call_edit();
   
            });
            $('.SmallWindowClose').click(function(){
                $('.SmallWindow').hide();
            });
        });
        
    });

function call_edit() {
    		var msg = $("#edit_form1").serialize();
                //var msg = $('input[name=id_zakaz_edit]:checked').serialize();
    		$.ajax({
    			type: 'POST',
    			url: 'lib/edit.php',
    			data: msg,
    			success: function(data) {
    				$("span").html(data);
    			},
    			error: function(xhr, msg) {
    				alert('Возникла ошибка: ' + xhr.responseCode);
    			}
    		});
      	};


</script>
<div class="SmallWindow">
    <div class="SmallWindowContent">
        <div class="Content">
        <p class="SmallWindowClose">X</p>       
        <span></span>
        </div>
    </div>
</div>
Ответить с цитированием
  #4 (permalink)  
Старый 20.10.2017, 13:53
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

kvadim80,
здесь преимущественно JS форум, поэтому если вас просят показать форму, то показываете ее результрующий html-код (то что на странице будет), а не то как она формируется РНР на сервере. Если она имеет множество полей одинаковых с разницей лишь в значениях, то не обязательно все такие поля, покажите только несколько.

Если же есть проблемы с серверной стороной, вот тогда только потребуется серверный код.
Ответить с цитированием
  #5 (permalink)  
Старый 20.10.2017, 14:15
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

kvadim80,
Не пойму, что вам не нравится?
<form method="POST" id="edit_form1" action="javascript:void(null);" onsubmit="call_edit()">
    <table class="div_form_edit">
        <tr>
            <th></th>
            <th>Дата</th>
            <th>Время</th>
            <th>Кабинет</th>
            <th>Оборудование</th>
            <th>ФИО</th>
            <th>Примечание</th>
        </tr>
      <tr><td><input type='radio' name='id_zakaz_edit' value='1' ></td><td>10/10/2017</td><td>10:00 - 20:00</td><td>10</td><td>Станок</td><td>Иванов И.И.</td><td></td></tr>
      <tr><td><input type='radio' name='id_zakaz_edit' value='2' ></td><td> 10/10/2017 </td><td> 10:00 - 20:00 </td><td>20</td><td>Верстак</td><td>Петров П.П.</td><td></td></tr>
      <tr><td><input type='radio' name='id_zakaz_edit' value='3' ></td><td>10/10/2017</td><td>10:00 - 20:00</td><td>33</td><td>Стол</td><td>Сидоров С.С.</td><td></td></tr>
    </table>
    <br>
    <input type="button" name="edit_form" value="Изменить" id="btn_edit_form">
</form>
<script src='https://code.jquery.com/jquery-latest.js'></script>

<script>
    $(document).ready(function() {
        $('#btn_edit_form').click(function(){
            $('.SmallWindow').show(function(){
                call_edit();
   
            });
            $('.SmallWindowClose').click(function(){
                $('.SmallWindow').hide();
            });
        });
        
    });

function call_edit() {
    		var msg = $("#edit_form1").serialize();
                alert(msg);
                msg = $('input[name=id_zakaz_edit]:checked').serialize();
                alert(msg);
       	};


</script>
<div class="SmallWindow">
    <div class="SmallWindowContent">
        <div class="Content">
        <p class="SmallWindowClose">X</p>       
        <span></span>
        </div>
    </div>
</div>

Последний раз редактировалось Dilettante_Pro, 20.10.2017 в 14:52.
Ответить с цитированием
  #6 (permalink)  
Старый 20.10.2017, 14:20
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от kvadim80
то в переменной $_POST поступает только единица, если
Причина в этом - <input type='radio' name='id_zakaz_edit' ....

У вас каждое поле будет иметь одно и тоже имя, на сервере поля формы будут в массиве $_POST, в котором имея поля, это ключ. А в массиве не может быть одинаковых ключей, следовательно вы получите значение только последнего поля.

Формируйте имена так - <input type='radio' name='id_zakaz_edit[]'. В этом случае в $_POST под ключом id_zakaz_edit будет массив значений полей.
Ответить с цитированием
  #7 (permalink)  
Старый 20.10.2017, 14:21
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от Dilettante_Pro
Не пойму, что вам не нравится?
Вы думаете приятно разбираться в коде в котором нет подсветки и вместо интерпретатора извилинами строить форму?
Ответить с цитированием
  #8 (permalink)  
Старый 20.10.2017, 14:49
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

laimas,
Этот вопрос не к вам, а к ТС.
Какой массив он хочет получить из радио checked с одинаковым именем?
А если нужен множественный выбор - то чекбокс.

Последний раз редактировалось Dilettante_Pro, 20.10.2017 в 14:54.
Ответить с цитированием
  #9 (permalink)  
Старый 20.10.2017, 14:58
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Вариант с чекбоксами
<form method="POST" id="edit_form1" action="javascript:void(null);" onsubmit="call_edit()">
    <table class="div_form_edit">
        <tr>
            <th></th>
            <th>Дата</th>
            <th>Время</th>
            <th>Кабинет</th>
            <th>Оборудование</th>
            <th>ФИО</th>
            <th>Примечание</th>
        </tr>
      <tr><td><input type='checkbox' name='id_zakaz_edit' value='1' ></td><td>10/10/2017</td><td>10:00 - 20:00</td><td>10</td><td>Станок</td><td>Иванов И.И.</td><td></td></tr>
      <tr><td><input type='checkbox' name='id_zakaz_edit' value='2' ></td><td> 10/10/2017 </td><td> 10:00 - 20:00 </td><td>20</td><td>Верстак</td><td>Петров П.П.</td><td></td></tr>
      <tr><td><input type='checkbox' name='id_zakaz_edit' value='3' ></td><td>10/10/2017</td><td>10:00 - 20:00</td><td>33</td><td>Стол</td><td>Сидоров С.С.</td><td></td></tr>
    </table>
    <br>
    <input type="button" name="edit_form" value="Изменить" id="btn_edit_form">
</form>
<script src='https://code.jquery.com/jquery-latest.js'></script>

<script>
    $(document).ready(function() {
        $('#btn_edit_form').click(function(){
            $('.SmallWindow').show(function(){
                call_edit();
   
            });
            $('.SmallWindowClose').click(function(){
                $('.SmallWindow').hide();
            });
        });
        
    });

function call_edit() {
    		var msg = $("#edit_form1").serialize();
                alert(msg);
                msg = $('input[name=id_zakaz_edit]:checked').serialize();
                alert(msg);
       	};


</script>
<div class="SmallWindow">
    <div class="SmallWindowContent">
        <div class="Content">
        <p class="SmallWindowClose">X</p>       
        <span></span>
        </div>
    </div>
</div>
Ответить с цитированием
  #10 (permalink)  
Старый 20.10.2017, 15:36
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от Dilettante_Pro
Этот вопрос не к вам, а к ТС.
Да, все правильно, проглядел тип поля. ) Потому и сказано автору - нежен html, а не серверный "сборщик", в котором из-за ряби несложно что-то проглядеть.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как правильно получить данные json (перевести в общую оласть видимости) Blondinka Общие вопросы Javascript 3 14.10.2015 21:36
$.getJSON как правильно передать данные inflexible AJAX и COMET 4 05.08.2015 00:36
Как правильно записать данные в JSON Alex_D181 Angular.js 1 19.06.2015 13:01
Как правильно отправлять данные Mukhtar AJAX и COMET 9 05.03.2013 09:56
Как правильно получить введенные данные в поле? buket jQuery 11 11.04.2010 19:59